MySQL GROUP BY 和 COUNT 多列
全部标签 我有一个关于MySQL的特殊问题。请查看下面的查询和结果集:SELECTCOUNT(c.Population)ASc,c.CityASccFROMCitycGROUPBYc.CityORDERBYc.City;261|Bristol----------------910|London----------------241|Manchester----------------我想得到COUNT的总和,所以在这种情况下,我想在下一行或新列中看到“1412”,这并不重要。有什么建议吗?我曾尝试对此应用子查询,但找不到合适的解决方案。干杯 最佳答案
我目前正在尝试构建一个有点棘手的MySQLSelect语句。这是我想要完成的:我有一个这样的表:data_tableuniqueIDstringIDsubject1144"MySubject"2144"MySubject-New"3144"MySubject-Newest"4211"Someothercolumn"基本上,我想做的是能够按stringID(stringID是线程化的图片)进行SELECT/GROUP而不是重复。此外,我想选择最近的stringID行(在上面的示例中是uniqueID3)。因此,如果我要查询数据库,它将返回以下内容(最近的uniqueID位于顶部):uni
我正在使用以下语句并获得几乎所有我需要的东西。此外,我想获得所有row_total结果的SUM。SELECTc.idAScampaign_id,c.amountAScampaign_amount,c.warning_trigger,COUNT(cc.id)ascode_count,DATEDIFF(c.end_date,CURDATE())asdays_remain,SUM(c.amount)asrow_totalFROMcampaignscJOINcampaign_codesccLEFTJOINpartnersponp.id=4WHEREc.partner_id=4ANDcc.sta
我试图理解这个查询到底做了什么:SELECTDISTINCT`state`,`state_name`FROM`geo`ORDERBY`state_name`ASC我想要做的就是选择2列(state和state_name),我只想要state字段没有重复值的唯一行。我不关心state_name字段中是否有重复值。我的查询是检查两列的唯一性还是只检查状态? 最佳答案 DISTINCT将只返回不同的行,所以:Ismyquerycheckingbothcolumnsforuniquenessorjuststate?两列您也可以改用GROUP
对于两个表播放器和团队具有1-∞关系(球员到球队):你如何计算每个球队有多少球员?失败的尝试:SELECTteam.teamid,(SELECTCOUNT(player.team)FROMplayer)FROMteamLEFTJOINplayerONplayer.team=team.teamid 最佳答案 尝试SELECTt.teamid,COUNT(p.team)player_countFROMteamtLEFTJOINplayerpONp.team=t.teamidGROUPBYt.teamidSQLFiddle如果某些团队没有
INSERTINTOMediaTrackInactive(MediaTrackInactiveID,PrimaryCategoryID,Title,Source,AnchorName,ProducedBy,CoverageID,Content,AudioLength,IsLead,CreationTime,UploadTime,StoryTypeID,IsPending)VALUES(103257,'10','HowdoestheUSmakethecaseforitsinterestsinUkraine?','NewsHour,PBSNewsHour,News','1','Report
我有两个要合并的表。第一张table是客户,另一张table是产品。目前我有22种产品,但我希望有一个灵活的数据库设计,所以我没有在产品数据库中有22列,而是为每个客户的每个产品分配1行,所以如果我总体上添加或删除1个产品,我不会必须更改数据库结构。我想要一个选择语句,我在其中为每个客户选择所有产品,输出应该在一行中,每个产品有一列。我看到了其他一些类似的问题,但目的是将所有行连接在1列中——我不希望这样。假设有2个客户和3个产品。表客户端:ClientId|ClientName---------------------1|Name12|Name2餐table用品ProductId|C
如果您的唯一目标是检查php中是否存在一行(true或false),那么最好的方法是什么?选项1?$result=mysql_query("SELECT*FROMusersWHEREid='1'");$num_rows=mysql_num_rows($result);if($num_rows==1)//oneuser,likeitshouldbe.else//dosomethingelse选项2?$query=mysql_query("selectcount(1)fromuserswhereid=1")if(mysql_result($query,0)==1)//oneuser,lik
这个问题在这里已经有了答案:IsEXISTSmoreefficientthanCOUNT(*)>0?(5个答案)关闭去年。我只想知道哪个最快。我想做的是检查表中是否存在数据。我大部分时间都在使用“LIMIT”,但在您看来,或者如果您有依据,哪个是检查数据是否存在最快的方法。例子:限制1:SELECTIDFROMTABLEWHEREID=1LIMIT1;存在:SELECTEXISTS(SELECT*FROMTABLEWHEREID=1);计数(*):SELECT(*)FROMTABLE;计数(ID):SELECT(ID)FROMTABLE;"另外:我正在使用InnoDB。
我的任务是计算评论数>X的用户数量。我的SQL查询如下所示:SELECTusers.id,users.display_name,(SELECTCOUNT(*)FROMcms_commentsWHEREcms_comments.author_id=users.id)AScomments_countFROMusersHAVINGcomments_count>150;一切正常,它正确显示了所有用户。但我需要查询以一行返回所有这些用户的数量。我不知道如何更改此查询以使其生成正确的数据。 最佳答案 我想这就是您要找的:selectcount(